package cn.jasonone.jasonfx.entity;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;

/**
 * @Author Jason
 * @Date 2020/1/19 11:13
 * @Version 1.0
 */
@AllArgsConstructor
@ToString
public class WindowEvent {
    /**
     * 数据来源视图名称
     */
    @Getter
    private String sourceViewName;
    /**
     * 数据来源控制器类型
     */
    @Getter
    private Class<? extends JFXBaseController> type;
    /**
     * 传递的数据
     */
    @Getter
    private ModelMap data;

    /**
     * 检测指定参数是否存在
     * @param key 参数名称
     * @return 检测结果
     */
    public boolean containsKey(String key){
        if(data == null) return false;
        return data.containsKey(key);
    }

    /**
     * 获取指定参数名称数据
     * @param key 参数名称
     * @param <T> 数据类型
     * @return 数据
     */
    public <T> T getData(String key){
        if(!containsKey(key)) return null;
        return (T) data.get(key);
    }
 }
